#include "link_list.h"

// 单链表的创建
Link_list* init_link_list(void)
{
    // 1 创建 头节点的动态空间
    Link_list * list = (Link_list *)malloc(sizeof(Link_list));
    if (NULL == list)
    {
        printf("创建失败\n");
        return NULL;
    }
    
    list->next = NULL;

    return list;
}




// 单链表的销毁
void free_link_list(Link_list ** list)
{
    if (NULL == *list)
    {
        printf("链表 为 NULL\n");
        return ;
    }

    // 1 销毁结点
    Node * ptr_1 = (*list)->next;
    Node * ptr_2 = ptr_1->next;
    for (size_t i = 0; ptr_1 != NULL; i++)
    {
        free(ptr_1);
        // if 判断  判断 ptr2 = NULL 的时候 我们如何处理
        ptr_1 = ptr_2;
        if (NULL != ptr_2)
        {
            ptr_2 = ptr_2->next;
        }
        
    }
    

    // 2 销毁头结点
    free(*list);
    *list = NULL;
}

